package com.sms.riskservice.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 短信风控检查注解
 * 用于标记需要进行风控检查的方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SmsRiskCheck {
    
    /**
     * 风控检查类型
     */
    RiskCheckType[] value() default {RiskCheckType.ALL};
    
    /**
     * 风控检查类型枚举
     */
    enum RiskCheckType {
        /**
         * 全部检查
         */
        ALL,
        
        /**
         * 黑名单检查
         */
        BLACKLIST,
        
        /**
         * 频率检查
         */
        RATE_LIMIT,
        
        /**
         * 用户状态检查
         */
        USER_STATUS,
        
        /**
         * 位置检查
         */
        LOCATION
    }
} 